02 贝尔曼公式
State Value
记Gt为某个轨迹的discounted return,则State Value(状态值)就是Gt的期望值。
即
vπ(s)=E[Gt∣St=s]
状态值基于策略,是关于state的函数。
贝尔曼公式推导
vπ(s)=E[Gt∣St=s]=E[Rt+1+γGt+1∣St=s]=E[Rt+1∣St=s]+γE[Gt+1∣St=s]
E[Rt+1∣St=s]=aΣπ(a∣s)E[Rt+1∣St=s,At=a]=aΣπ(a∣s)rΣp(r∣s,a)r
E[Gt+1∣St=s]=s′ΣE[Gt+1∣St=s,St+1=s′]p(s′∣s)=s′ΣE[Gt+1∣St+1=s′]p(s′∣s)=s′Σvπ(s′)p(s′∣s)=s′Σvπ(s′)aΣp(s′∣s,a)π(a∣s)
(上式第二个等号源于马尔可夫性质)
由于 vπ(s′)与a无关
E[Gt+1∣St=s]=s′Σvπ(s′)aΣp(s′∣s,a)π(a∣s)=s′ΣaΣvπ(s′)p(s′∣s,a)π(a∣s)=aΣs′Σvπ(s′)p(s′∣s,a)π(a∣s)=aΣπ(a∣s)s′Σvπ(s′)p(s′∣s,a)
(上式也可以直接从定义推出)
vπ(s)=aΣπ(a∣s)rΣp(r∣s,a)r+aΣπ(a∣s)s′Σvπ(s′)p(s′∣s,a)=aΣπ(a∣s)[rΣp(r∣s,a)r+γs′Σvπ(s′)p(s′∣s,a)]
最后得到的
vπ(s)=aΣπ(a∣s)[rΣp(r∣s,a)r+γs′Σvπ(s′)p(s′∣s,a)]
即为贝尔曼公式。
贝尔曼公式描述了不同状态值之间的关系。对于某个策略、状态等,贝尔曼公式实际是一 组式子,联立可以求出各个状态量的具体值。
向量形式
将贝尔曼公式写作
vπ(s)=rπ(s)+γs′Σpπ(s′∣s)vπ(s′)
其中rπ(s)是在现有策略下从s出发立刻得到的平均奖励,pπ(s′∣s)是从s到s′的概率。
将si从1到i编号,则上式写为
vπ(si)=rπ(si)+γs′Σpπ(sj∣si)vπ(sj)
将所有式子排列在一起,即可写为矩阵形式
vπ=rπ+γPπvπ
其中
- vπ=[vπ(s1),...,vπ(sn)]T
- rπ=[rπ(s1),...,rπ(sn)]T
- Pπ∈Rn×n,[Pπ]ij=pπ(sj∣si),Pπ为状态转移矩阵
最简单(但复杂度高)的求解方式是求逆。
vπ=(I−γPπ)−1rπ
另一种方式是迭代。可以假设其中某个vi是任一一个值,将其带入求vi+1,不断迭代,当迭代次数趋于无穷时,对应的状态值趋于真实值。
Action Value
action value(动作价值)指在某个状态下采取某个行动,能得到的平均回报。action value用于衡量在某个状态下,哪个动作的价值更高。
即有
qπ(s,a)=E[Gt∣St=s,At=a]
vπ(s)=aΣπ(a∣s)qπ(s,a)
和贝尔曼公式联立,有
qπ(s,a)=rΣp(r∣s,a)r+γs′Σp(s′∣s,a)vπ(s′)
这个式子说明状态价值和动作价值可以相互转化。